# 导入time模块，用于实现程序强制暂停（解决页面加载延迟、操作顺序依赖问题）
import time
# 从selenium库导入webdriver模块，核心功能是创建浏览器驱动、控制浏览器行为（打开/关闭/导航等）
from selenium import webdriver
# 从selenium驱动模块导入By类，用于统一指定元素定位策略（避免直接写字符串导致的语法错误）
from selenium.webdriver.common.by import By

# 1. 初始化浏览器（Chrome浏览器）
# executable_path：指定ChromeDriver驱动的本地绝对路径（适配selenium3及以下版本，需手动下载驱动）
# 驱动作用：作为Python代码与Chrome浏览器之间的通信桥梁
driver = webdriver.Chrome(executable_path='D:/chrome_driver/chromedriver.exe')
# 注释：selenium4及以上版本推荐写法（无需手动指定驱动路径）
# 需提前安装 webdriver-manager 库（pip install webdriver-manager），会自动下载匹配的驱动
# driver = webdriver.Chrome() # 创建Chrome浏览器对象，后续通过该对象操作浏览器

# 2. 访问目标网页
# get()方法：接收URL字符串参数，让浏览器加载并显示该URL对应的网页
# 注意：URL需完整（包含http/https），否则会识别为本地路径
driver.get("http://121.43.169.97:8848/pageA.html")

# 浏览器窗口操作：最大化窗口
# maximize_window()：将浏览器窗口调整为当前屏幕的最大尺寸
# 作用：避免因窗口大小导致部分元素被隐藏（影响定位），提高脚本稳定性
driver.maximize_window()

# 强制暂停3秒
# 等待窗口最大化操作完成（浏览器操作是异步的，需给足够时间响应）
time.sleep(3)

# 浏览器窗口操作：设置固定尺寸
# set_window_size(width, height)：参数为像素值，分别设置窗口宽度和高度
# 此处设置为800*600像素，适用于模拟小屏幕设备或特定分辨率场景
driver.set_window_size(800, 600)   # 设置窗口尺寸800*600像素

# 强制暂停3秒
# 等待窗口尺寸调整完成，避免后续移动操作与尺寸调整冲突
time.sleep(3)

# 浏览器窗口操作：移动窗口位置
# set_window_position(x, y)：参数为屏幕坐标（原点在屏幕左上角，x轴向右、y轴向下）
# 此处x=0（窗口左侧对齐屏幕左边缘），y=500（窗口顶部距离屏幕顶部500像素）
driver.set_window_position(0, 500) # 将窗口移至屏幕坐标0，500

# 3. 核心页面操作：元素交互+页面属性获取
# 定位元素并输入内容：通过CSS_SELECTOR定位id为"userA"的输入框
# 1. find_element(By.CSS_SELECTOR, "#userA")：CSS选择器中"#"表示匹配id属性，等价于By.ID定位
# 2. send_keys("admin")：向定位到的输入框中输入文本"admin"（适用于input、textarea等输入组件）
driver.find_element(By.CSS_SELECTOR,"#userA").send_keys("admin")

# 强制暂停3秒
# 等待输入操作完成（确保文本已成功写入输入框），避免刷新时输入内容未生效
time.sleep(3)

# 页面刷新操作：模拟浏览器"刷新"按钮功能
# refresh()：重新加载当前页面，会重置页面所有未提交的状态（输入框内容、复选框选中状态等）
driver.refresh()

# 获取并打印当前页面标题
# driver.title：属性，返回当前网页<head>标签内<title>元素的文本内容
# 作用：常用于验证页面是否正确加载（如预期标题与实际标题对比）
print("当前页面标题：", driver.title)

# 获取并打印当前页面URL
# driver.current_url：属性，返回浏览器地址栏中显示的当前页面完整URL
# 作用：验证页面跳转是否正确（如点击链接后是否跳转到目标地址）
print("当前页面URL：", driver.current_url)

# （可选）关闭浏览器与释放资源
# 若需脚本执行完毕后自动关闭浏览器，可添加以下代码：
# driver.quit()  # 关闭所有浏览器窗口+终止驱动进程（彻底释放资源）
# 注：若不添加，浏览器会保持打开状态，需手动关闭